Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / Sideband.git / files / libs / able / examples / advertising_battery.py

Displaying Raw • Download


libs/able/examples/advertising_battery.py master (8b8a5035) Text, 2.26 KB

T8b949e"""Advertise battery level, that degrades every second."""
Tff7b72from T7ee787kivyT7ee787.T7ee787app Tff7b72import Te6edf3App
Tff7b72from T7ee787kivyT7ee787.T7ee787clock Tff7b72import Te6edf3Clock
Tff7b72from T7ee787kivyT7ee787.T7ee787uixT7ee787.T7ee787label Tff7b72import Te6edf3Label

Tff7b72from T7ee787able Tff7b72import Te6edf3BluetoothDispatcher
Tff7b72from T7ee787able Tff7b72import Te6edf3advertising

T8b949e# Standard fully-qualified UUID for the Battery Service
Te6edf3BATTERY_SERVICE_UUID Tff7b72= Ta5d6ff"Ta5d6ff0000180f-0000-1000-8000-00805f9b34fbTa5d6ff"


Tff7b72class T56d364BatteryAdvertiserTb4b4b4(Te6edf3advertisingTff7b72.Td2a8ffAdvertiserTb4b4b4)Tb4b4b4:

Tff7b72def Td2a8ffon_advertising_startedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3advertising_setTb4b4b4, Te6edf3tx_powerTb4b4b4, Te6edf3statusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3advertisingTff7b72.Td2a8ffStatusTff7b72.Td2a8ffSUCCESSTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffAdvertising is started successfullyTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffAdvertising start error status: Tffd700{Te6edf3statusTffd700}Ta5d6ff"Tb4b4b4)

Tff7b72def Td2a8ffon_advertising_stoppedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3advertising_setTb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffAdvertising stoppedTa5d6ff"Tb4b4b4)


Tff7b72class T56d364BatteryLabelTb4b4b4(Te6edf3LabelTb4b4b4)Tb4b4b4:
T8b949e"""Widget to control advertiser and show current battery level."""

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ff_level Tff7b72= T79c0ff0
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Te6edf3textTff7b72=Ta5d6ff"Ta5d6ffWaiting for advertising to start...Ta5d6ff"Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffadvertiser Tff7b72= Te6edf3BatteryAdvertiserTb4b4b4(
Te6edf3bleTff7b72=Te6edf3BluetoothDispatcherTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3dataTff7b72=Tff7b72selfTff7b72.Td2a8ffconstruct_dataTb4b4b4(Te6edf3levelTff7b72=T79c0ff100Tb4b4b4)Tb4b4b4,
Te6edf3intervalTff7b72=Te6edf3advertisingTff7b72.Td2a8ffIntervalTff7b72.Td2a8ffMIN
Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffbindTb4b4b4(Te6edf3on_advertising_startedTff7b72=Tff7b72selfTff7b72.Td2a8ffon_startedTb4b4b4) T8b949e# bind to start of advertising
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffstartTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffon_startedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3advertiserTb4b4b4, Te6edf3advertising_setTb4b4b4, Te6edf3tx_powerTb4b4b4, Te6edf3statusTb4b4b4)Tb4b4b4:
Tff7b72if Te6edf3status Tff7b72== Te6edf3advertisingTff7b72.Td2a8ffStatusTff7b72.Td2a8ffSUCCESSTb4b4b4:
T8b949e# Advertising is started - update battery level every second
Tff7b72selfTff7b72.Td2a8ffclock Tff7b72= Te6edf3ClockTff7b72.Td2a8ffschedule_intervalTb4b4b4(Tff7b72selfTff7b72.Td2a8ffupdate_levelTb4b4b4, T79c0ff1Tb4b4b4)

Tff7b72def Td2a8ffupdate_levelTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3dtTb4b4b4)Tb4b4b4:
Te6edf3level Tff7b72= Tff7b72selfTff7b72.Td2a8ff_level Tff7b72= Tb4b4b4(Tff7b72selfTff7b72.Td2a8ff_level Tff7b72- T79c0ff1Tb4b4b4) Tff7b72% T79c0ff101
Tff7b72selfTff7b72.Td2a8fftext Tff7b72= Tffa657strTb4b4b4(Te6edf3levelTb4b4b4)

Tff7b72if Te6edf3level Tff7b72> T79c0ff0Tb4b4b4:
T8b949e# Set new advertising data
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffdata Tff7b72= Tff7b72selfTff7b72.Td2a8ffconstruct_dataTb4b4b4(Te6edf3levelTb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffclockTff7b72.Td2a8ffcancelTb4b4b4(Tb4b4b4)
T8b949e# Stop advertising
Tff7b72selfTff7b72.Td2a8ffadvertiserTff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ffconstruct_dataTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3levelTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3advertisingTff7b72.Td2a8ffAdvertiseDataTb4b4b4(
Te6edf3advertisingTff7b72.Td2a8ffDeviceNameTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3advertisingTff7b72.Td2a8ffTXPowerLevelTb4b4b4(Tb4b4b4)Tb4b4b4,
Te6edf3advertisingTff7b72.Td2a8ffServiceDataTb4b4b4(Te6edf3BATTERY_SERVICE_UUIDTb4b4b4, Tb4b4b4[Te6edf3levelTb4b4b4]Tb4b4b4)
Tb4b4b4)


Tff7b72class T56d364BatteryAppTb4b4b4(Te6edf3AppTb4b4b4)Tb4b4b4:

Tff7b72def Td2a8ffbuildTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3BatteryLabelTb4b4b4(Tb4b4b4)


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff"Ta5d6ff__main__Ta5d6ff"Tb4b4b4:
Te6edf3BatteryAppTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────